home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 May: Tool Chest / Developer CD Series Tool Chest (Apple Computer)(May 1999).iso / Tool Chest / Devices / CD-ROM / How to Detect a CD / Not used in this example / Determine Devices using SCSI / cscsi.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-10-18  |  1.3 KB  |  61 lines  |  [TEXT/MPS ]

  1. #ifndef CSCSI_H
  2. #define CSCSI_H
  3.  
  4. #include        <Types.h>
  5. #include        <SCSI.H>
  6.  
  7. typedef enum
  8. {
  9.         dataIn=1, dataOut=2, noData=3
  10. } XferDir;
  11.  
  12. #define USE_CDB            0x01
  13. #define USE_BUF            0x02
  14. #define USE_LEN            0x04
  15. #define USE_DIR            0x08
  16. #define USE_ID            0x10
  17.  
  18. #define CAN_DATA        (USE_CDB|USE_BUF|USE_LEN|USE_DIR|USE_ID)
  19. #define CAN_NO_DATA        (USE_CDB|USE_DIR|USE_ID)
  20.  
  21. #define SCSI_NEED_INFO    (-1)
  22. #define SCSI_OK                    (0)
  23.  
  24. class    CSCSIOp
  25. {
  26.     short    targetID;
  27.     Byte    cdb[12];
  28.     Byte    cdbLen;
  29.     Byte     *dataPtr;
  30.     long    dataLen;
  31.     short    status;
  32.     short    message;
  33.     OSErr    err;
  34.     XferDir dir;
  35.     long    timeout;
  36.     short    haveInfo;
  37.     long    moved;
  38. public:
  39.             CSCSIOp( void );
  40.             ~CSCSIOp( void );
  41.     void    keep( short what );
  42.     void    setID( short ID );
  43.     void    setCDB( short len, Byte * cdbPtr );
  44.     void    set6( Byte a, Byte b, Byte c, Byte d, Byte e, Byte f );
  45.     void    set10( Byte a, Byte b, Byte c, Byte d, Byte e, Byte f,
  46.                                     Byte g, Byte h, Byte i, Byte j );
  47.     void    set12( Byte a, Byte b, Byte c, Byte d, Byte e, Byte f,
  48.                                     Byte g, Byte h, Byte i, Byte j, Byte k, Byte l );
  49.     void    setLen( long len );
  50.     void    setBuf( void * buf );
  51.     void    setDir( XferDir direction );
  52.     short    execute( void );
  53.     short    getStatus( void );
  54.     short    getMessage( void );
  55.     void    setTimeout( long newTime );
  56.     OSErr    getErr( void );
  57.     long    getMoved( void );
  58. };
  59.  
  60. #endif
  61.